<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>for [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_control.html">Control</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div data-if="dotnet" style="display:none"><p>Use the tabs on the upper right to switch to a different programming language.</p></div>
<div data-if="cpp" style="display:none"><p>Use the tabs on the upper right to switch to a different programming language.</p></div>
<div data-if="c" style="display:none"><p>Use the tabs on the upper right to switch to a different programming language.</p></div>
<div data-if="python" style="display:none"><p>Use the tabs on the upper right to switch to a different programming language.</p></div>
<div data-if="hdevelop" style="display:inline">
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">for</span><span data-if="c" style="display:none;">for</span><span data-if="cpp" style="display:none;">For</span><span data-if="dotnet" style="display:none;">For</span><span data-if="python" style="display:none;">for</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">for</span><span data-if="c" style="display:none;">for</span><span data-if="cpp" style="display:none;">For</span><span data-if="dotnet" style="display:none;">For</span><span data-if="python" style="display:none;">for</span></code> — Starts a loop block that is usually executed for a fixed number of
iterations.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>for</b>( :  : <a href="#Start"><i>Start</i></a>, <a href="#End"><i>End</i></a>, <a href="#Step"><i>Step</i></a> : <a href="#Index"><i>Index</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>for</b>(const Hlong <a href="#Start"><i>Start</i></a>, const Hlong <a href="#End"><i>End</i></a>, const Hlong <a href="#Step"><i>Step</i></a>, Hlong* <a href="#Index"><i>Index</i></a>)</code></p>
<p>
<code>Herror <b>T_for</b>(const Htuple <a href="#Start"><i>Start</i></a>, const Htuple <a href="#End"><i>End</i></a>, const Htuple <a href="#Step"><i>Step</i></a>, Htuple* <a href="#Index"><i>Index</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>For</b>(const HTuple&amp; <a href="#Start"><i>Start</i></a>, const HTuple&amp; <a href="#End"><i>End</i></a>, const HTuple&amp; <a href="#Step"><i>Step</i></a>, HTuple* <a href="#Index"><i>Index</i></a>)</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>For</b>(<a href="HTuple.html">HTuple</a> <a href="#Start"><i>start</i></a>, <a href="HTuple.html">HTuple</a> <a href="#End"><i>end</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Step"><i>step</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Index"><i>index</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>for</b>(<a href="#Start"><i>start</i></a>: Union[float, int], <a href="#End"><i>end</i></a>: Union[float, int], <a href="#Step"><i>step</i></a>: Union[float, int]) -&gt; Union[float, int]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>Syntax in HDevelop: <code>for Index := Start to End by Step</code>
</p>
<p>The <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> statement starts a loop block that is usually executed
for a fixed number of iterations.
The <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> block ends at the corresponding <a href="endfor.html"><code><span data-if="hdevelop" style="display:inline">endfor</span><span data-if="c" style="display:none">endfor</span><span data-if="cpp" style="display:none">Endfor</span><span data-if="com" style="display:none">Endfor</span><span data-if="dotnet" style="display:none">Endfor</span><span data-if="python" style="display:none">endfor</span></code></a> statement.
</p>
<p>The number of iterations is defined by the <a href="#Start"><i><code><span data-if="hdevelop" style="display:inline">Start</span><span data-if="c" style="display:none">Start</span><span data-if="cpp" style="display:none">Start</span><span data-if="com" style="display:none">Start</span><span data-if="dotnet" style="display:none">start</span><span data-if="python" style="display:none">start</span></code></i></a> value, the
<a href="#End"><i><code><span data-if="hdevelop" style="display:inline">End</span><span data-if="c" style="display:none">End</span><span data-if="cpp" style="display:none">End</span><span data-if="com" style="display:none">End</span><span data-if="dotnet" style="display:none">end</span><span data-if="python" style="display:none">end</span></code></i></a> value, and the increment value <a href="#Step"><i><code><span data-if="hdevelop" style="display:inline">Step</span><span data-if="c" style="display:none">Step</span><span data-if="cpp" style="display:none">Step</span><span data-if="com" style="display:none">Step</span><span data-if="dotnet" style="display:none">step</span><span data-if="python" style="display:none">step</span></code></i></a>.
All of these parameters can be initialized with expressions or variables
instead of constant values.
Please note that these loop parameters are evaluated only once, namely,
immediately before the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> loop is entered.
They are not re-evaluated after the loop cycles, i.e., any modifications of
these variables within the loop body will have no influence on the number
of iterations.
</p>
<p>The passed loop parameters must be either of type <code>integer</code> or
<code>real</code>.
If all input parameters are of type <code>integer</code>, the <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a>
variable will also be of type <code>integer</code>.
In all other cases the <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable will be of type <code>real</code>.
</p>
<p>At the beginning of each iteration the loop variable <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> is
compared to the <a href="#End"><i><code><span data-if="hdevelop" style="display:inline">End</span><span data-if="c" style="display:none">End</span><span data-if="cpp" style="display:none">End</span><span data-if="com" style="display:none">End</span><span data-if="dotnet" style="display:none">end</span><span data-if="python" style="display:none">end</span></code></i></a> parameter.
If the increment value <a href="#Step"><i><code><span data-if="hdevelop" style="display:inline">Step</span><span data-if="c" style="display:none">Step</span><span data-if="cpp" style="display:none">Step</span><span data-if="com" style="display:none">Step</span><span data-if="dotnet" style="display:none">step</span><span data-if="python" style="display:none">step</span></code></i></a> is positive, the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> loop
is executed as long as the <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable is less than or
equal to the <a href="#End"><i><code><span data-if="hdevelop" style="display:inline">End</span><span data-if="c" style="display:none">End</span><span data-if="cpp" style="display:none">End</span><span data-if="com" style="display:none">End</span><span data-if="dotnet" style="display:none">end</span><span data-if="python" style="display:none">end</span></code></i></a> parameter.
If the increment value <a href="#Step"><i><code><span data-if="hdevelop" style="display:inline">Step</span><span data-if="c" style="display:none">Step</span><span data-if="cpp" style="display:none">Step</span><span data-if="com" style="display:none">Step</span><span data-if="dotnet" style="display:none">step</span><span data-if="python" style="display:none">step</span></code></i></a> is negative, the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> loop
is executed as long as the <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable is greater than or
equal to the <a href="#End"><i><code><span data-if="hdevelop" style="display:inline">End</span><span data-if="c" style="display:none">End</span><span data-if="cpp" style="display:none">End</span><span data-if="com" style="display:none">End</span><span data-if="dotnet" style="display:none">end</span><span data-if="python" style="display:none">end</span></code></i></a> parameter.
</p>
<p><b>Attention:</b> If the increment value <a href="#Step"><i><code><span data-if="hdevelop" style="display:inline">Step</span><span data-if="c" style="display:none">Step</span><span data-if="cpp" style="display:none">Step</span><span data-if="com" style="display:none">Step</span><span data-if="dotnet" style="display:none">step</span><span data-if="python" style="display:none">step</span></code></i></a> is set to a
value of type <code>real</code>, it may happen that the last loop cycle is
omitted owing to rounding errors in case the <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable is
expected to match the <a href="#End"><i><code><span data-if="hdevelop" style="display:inline">End</span><span data-if="c" style="display:none">End</span><span data-if="cpp" style="display:none">End</span><span data-if="com" style="display:none">End</span><span data-if="dotnet" style="display:none">end</span><span data-if="python" style="display:none">end</span></code></i></a> value exactly in the last cycle.
Hence, on some systems the following loop is not executed---as
expected---for four times (with the <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable set to 1.3,
1.4, 1.5, and 1.6), but only three times because after three additions the
index variable is slightly greater than 1.6 due to rounding errors.
<span class="pre">
  I:=[]
  for Index := 1.3 to 1.6 by 0.1
    I := [I,Index]
  endfor
</span>
</p>
<p>After the execution of the loop body, i.e., upon reaching
the corresponding <a href="endfor.html"><code><span data-if="hdevelop" style="display:inline">endfor</span><span data-if="c" style="display:none">endfor</span><span data-if="cpp" style="display:none">Endfor</span><span data-if="com" style="display:none">Endfor</span><span data-if="dotnet" style="display:none">Endfor</span><span data-if="python" style="display:none">endfor</span></code></a> statement or a <a href="continue.html"><code><span data-if="hdevelop" style="display:inline">continue</span><span data-if="c" style="display:none">continue</span><span data-if="cpp" style="display:none">Continue</span><span data-if="com" style="display:none">Continue</span><span data-if="dotnet" style="display:none">Continue</span><span data-if="python" style="display:none">continue</span></code></a> statement,
the increment value (as initialized at the beginning of the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code>
loop) is added to the current value of the loop counter <a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a>.
Then, the loop condition is re-evaluated as described above.
Depending on the result the loop is either executed again or finished
in which case execution continues with the first statement after the
corresponding <a href="endfor.html"><code><span data-if="hdevelop" style="display:inline">endfor</span><span data-if="c" style="display:none">endfor</span><span data-if="cpp" style="display:none">Endfor</span><span data-if="com" style="display:none">Endfor</span><span data-if="dotnet" style="display:none">Endfor</span><span data-if="python" style="display:none">endfor</span></code></a> statement.
</p>
<p>A <a href="break.html"><code><span data-if="hdevelop" style="display:inline">break</span><span data-if="c" style="display:none">break</span><span data-if="cpp" style="display:none">Break</span><span data-if="com" style="display:none">Break</span><span data-if="dotnet" style="display:none">Break</span><span data-if="python" style="display:none">break</span></code></a> statement within the loop---that is not covered by
a more internal block---leaves the loop immediately and execution continues
after the corresponding <a href="endfor.html"><code><span data-if="hdevelop" style="display:inline">endfor</span><span data-if="c" style="display:none">endfor</span><span data-if="cpp" style="display:none">Endfor</span><span data-if="com" style="display:none">Endfor</span><span data-if="dotnet" style="display:none">Endfor</span><span data-if="python" style="display:none">endfor</span></code></a> statement.
In contrast, the <a href="continue.html"><code><span data-if="hdevelop" style="display:inline">continue</span><span data-if="c" style="display:none">continue</span><span data-if="cpp" style="display:none">Continue</span><span data-if="com" style="display:none">Continue</span><span data-if="dotnet" style="display:none">Continue</span><span data-if="python" style="display:none">continue</span></code></a> statement is used to ignore the rest of
the loop body in the current cycle and continue execution with adapting the
<a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable and re-evaluating the loop condition.
</p>
<p><b>Attention:</b> It is recommended to avoid modifying the
<a href="#Index"><i><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></i></a> variable of the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> loop within its body.
</p>
<p>If the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> loop is stopped, e.g., by a <a href="stop.html"><code><span data-if="hdevelop" style="display:inline">stop</span><span data-if="c" style="display:none">stop</span><span data-if="cpp" style="display:none">Stop</span><span data-if="com" style="display:none">Stop</span><span data-if="dotnet" style="display:none">Stop</span><span data-if="python" style="display:none">stop</span></code></a> statement or by
pressing the <code>Stop</code> button, and if the PC is placed manually by the
user, the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> loop is continued at the current iteration as long as
the PC remains within the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> body or is set to the <a href="endfor.html"><code><span data-if="hdevelop" style="display:inline">endfor</span><span data-if="c" style="display:none">endfor</span><span data-if="cpp" style="display:none">Endfor</span><span data-if="com" style="display:none">Endfor</span><span data-if="dotnet" style="display:none">Endfor</span><span data-if="python" style="display:none">endfor</span></code></a>
statement.
If the PC is set on the <code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> statement (or before it) and executed
again, the loop is reinitialized and restarts at the beginning.
</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Start" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Start</span><span data-if="c" style="display:none">Start</span><span data-if="cpp" style="display:none">Start</span><span data-if="com" style="display:none">Start</span><span data-if="dotnet" style="display:none">start</span><span data-if="python" style="display:none">start</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[float, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Start value of the loop variable.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1</p>
</div>
  <div class="par">
<div class="parhead">
<span id="End" class="parname"><b><code><span data-if="hdevelop" style="display:inline">End</span><span data-if="c" style="display:none">End</span><span data-if="cpp" style="display:none">End</span><span data-if="com" style="display:none">End</span><span data-if="dotnet" style="display:none">end</span><span data-if="python" style="display:none">end</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[float, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">End value of the loop variable.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>5</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Step" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Step</span><span data-if="c" style="display:none">Step</span><span data-if="cpp" style="display:none">Step</span><span data-if="com" style="display:none">Step</span><span data-if="dotnet" style="display:none">step</span><span data-if="python" style="display:none">step</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[float, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Increment value of the loop variable.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Index" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Index</span><span data-if="c" style="display:none">Index</span><span data-if="cpp" style="display:none">Index</span><span data-if="com" style="display:none">Index</span><span data-if="dotnet" style="display:none">index</span><span data-if="python" style="display:none">index</span></code></b> (output_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[float, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Loop variable.</p>
</div>
<h2 id="sec_example_hdevelop">例程 (HDevelop)</h2>
<pre class="example">
read_image (Image, 'fabrik')
threshold (Image, Region, 128, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 150, 99999)
area_center (SelectedRegions, Area, Row, Column)
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_display (Image)
dev_display (SelectedRegions)
dev_set_color ('white')
for Index := 0 to |Area| - 1 by 1
  set_tposition (WindowHandle, Row[Index], Column[Index])
  write_string (WindowHandle, 'Area=' + Area[Index])
endfor
</pre>
<h2 id="sec_result">结果</h2>
<p>If the values of the specified parameters are correct,
<code><span data-if="hdevelop" style="display:inline">for</span><span data-if="c" style="display:none">for</span><span data-if="cpp" style="display:none">For</span><span data-if="com" style="display:none">For</span><span data-if="dotnet" style="display:none">For</span><span data-if="python" style="display:none">for</span></code> (as an operator) returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  Otherwise, an
exception is raised and an error code is returned.</p>
<h2 id="sec_alternatives">可替代算子</h2>
<p>
<code><a href="while.html"><span data-if="hdevelop" style="display:inline">while</span><span data-if="c" style="display:none">while</span><span data-if="cpp" style="display:none">While</span><span data-if="com" style="display:none">While</span><span data-if="dotnet" style="display:none">While</span><span data-if="python" style="display:none">while</span></a></code>, 
<code><a href="until.html"><span data-if="hdevelop" style="display:inline">until</span><span data-if="c" style="display:none">until</span><span data-if="cpp" style="display:none">Until</span><span data-if="com" style="display:none">Until</span><span data-if="dotnet" style="display:none">Until</span><span data-if="python" style="display:none">until</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="repeat.html"><span data-if="hdevelop" style="display:inline">repeat</span><span data-if="c" style="display:none">repeat</span><span data-if="cpp" style="display:none">Repeat</span><span data-if="com" style="display:none">Repeat</span><span data-if="dotnet" style="display:none">Repeat</span><span data-if="python" style="display:none">repeat</span></a></code>, 
<code><a href="break.html"><span data-if="hdevelop" style="display:inline">break</span><span data-if="c" style="display:none">break</span><span data-if="cpp" style="display:none">Break</span><span data-if="com" style="display:none">Break</span><span data-if="dotnet" style="display:none">Break</span><span data-if="python" style="display:none">break</span></a></code>, 
<code><a href="continue.html"><span data-if="hdevelop" style="display:inline">continue</span><span data-if="c" style="display:none">continue</span><span data-if="cpp" style="display:none">Continue</span><span data-if="com" style="display:none">Continue</span><span data-if="dotnet" style="display:none">Continue</span><span data-if="python" style="display:none">continue</span></a></code>, 
<code><a href="endfor.html"><span data-if="hdevelop" style="display:inline">endfor</span><span data-if="c" style="display:none">endfor</span><span data-if="cpp" style="display:none">Endfor</span><span data-if="com" style="display:none">Endfor</span><span data-if="dotnet" style="display:none">Endfor</span><span data-if="python" style="display:none">endfor</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Foundation</p>
</div>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
